from pydantic_settings import BaseSettings
from typing import Dict, Any
import os

class Settings(BaseSettings):
    # API Settings
    API_HOST: str = "0.0.0.0"
    API_PORT: int = 8000
    DEBUG: bool = False

    # Agent Settings
    MAX_TASKS: int = 1000
    TASK_TIMEOUT: int = 300  # seconds

    # DeepSeek Settings
    DEEPSEEK_API_KEY: str = os.getenv("DEEPSEEK_API_KEY", "")
    
    # PPT Settings
    PPT_OUTPUT_DIR: str = "output/presentations"
    PPT_DEFAULT_THEME: str = "default"

    # Logging Settings
    LOG_LEVEL: str = "INFO"
    LOG_FORMAT: str = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"

    # Custom Settings
    CUSTOM_SETTINGS: Dict[str, Any] = {
        "allow_tool_registration": True,
        "max_concurrent_tasks": 5,
    }

    class Config:
        env_file = ".env"

# Create settings instance
settings = Settings() 